package com.neu.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.neu.base.PageBean;
import com.neu.base.Result;
import com.neu.entity.*;
import com.neu.entity.DTO.NoticeDTO;
import com.neu.entity.security.LoginUser;

import java.util.List;
import java.util.Map;

public interface NoticeService extends IService<Notice> {

    PageBean<NoticeDTO> pagelist(Integer pageNum, Integer pageSize);

    PageBean<NoticeDTO> search(Map map);

    Result publish(NoticeDTO noticeDTO);


    Result delete(NoticeDTO noticeDTO);

    String sendProjectInviteNotice(List<String> noticeUserIds, Project project, Role role, LoginUser loginUser);

    void removeProjectInviteNotice(User user, Project project, Role role, LoginUser loginUser);

    void sendTaskInviteNotice(User user, Task task, Role role, LoginUser loginUser, Tenant tenant);


    void removeTaskInviteNotice(String userId, Task task, Project project, LoginUser loginUser);

    void taskDeleteNotice(Task task, Project project, List<TaskUser> taskUserList, LoginUser loginUser);
}
